package com.bgs.travelapp.user.service;

import com.bgs.travelapp.order.entity.ScenicOrderEntity;
import com.bgs.travelapp.page.PageRequest;
import com.bgs.travelapp.page.PageResult;
import com.bgs.travelapp.result.CommonResult;
import com.bgs.travelapp.user.entity.UserEntity;
import org.springframework.web.multipart.MultipartRequest;

import java.util.List;

/**
 * hbx 2022年8月4日09:23:36
 * lzy 2022-7-20 10点03分
 * 前台非管理用户模块
 */
public interface UserService {

    /**
     * 管理前端用户（后台管理）
     * lzy 2022-7-21 (09点19分)
     * @param userEntity
     * @param multipartRequests
     * @return
     */
    Integer saveUser(UserEntity userEntity, MultipartRequest multipartRequests);

    /**
     * 使用分页格式 获取用户信息列表 （后台管理）
     * Lzy 2022-7-21 09点35分
     * @param pageRequest
     * @return
     */
    PageResult getUserList(PageRequest pageRequest);

    /**
     * 校验登录名是否存在（后台管理）
     * lzy 2022-7-21 14点36分
     * @param loginName
     * @return
     */
    Integer checkLoginName(String loginName);

    /**
     * 修改用户信息（后台管理）
     * lzy 2022-7-21 19点42分
     * @param multipartRequest
     * @param userEntity
     * @return
     */
    Integer editUser(MultipartRequest multipartRequest, UserEntity userEntity);

    /**
     * 删除用户信息（后台管理）
     * lzy 2022-7-25 10点43分
     * @param id
     * @return
     */
    Integer deleteUser(Integer id);

    /**
     * 绑定/更改邮箱校验（后台管理）
     * lzy 2022-8-3 15点57分
     * @param mail
     * @param id
     * @return
     */
    CommonResult checkMailEdit(String mail, Integer id);

    /**
     * 绑定/更改邮箱（后台管理）
     * lzy 2022-8-3 21点03分
     * @param mail
     * @param code
     * @param id
     * @return
     */
    CommonResult editMail(String mail, String code, Integer id);


    /**
     * 查询用户信息（前端---我的会员卡（查看明细））
     * gpd 2022-08-04 08点28分
     * @param id
     * @return
     */
    List<UserEntity> getQueryUserList(Integer id);

    /**
     * 查询用户头像id
     * 前端---问答（对方头像）
     * gpd 2022-08-19 15点57分
     * @param toUserName
     * @return
     */
    List<UserEntity> getUserAvatarId(String toUserName);

    /**
     * 根据游记里的用户id查询用户邮箱信息（后端管理）
     * hbx 2022年8月23日09:55:35
     * @param userId
     * @return
     */
    List<UserEntity> mailByUserId(Integer userId);
    /**
     * 前端修改用户信息
     * fys 2022.8.23 11:21
     * @param userEntity
     * @return
     */
    Integer updateUser(UserEntity userEntity);

    /**
     * 前端修改用户头像
     * fys 2022.8.23 16:21
     * @param multipartRequest
     * @param id
     * @return
     */
    Integer updateUserAratar(MultipartRequest multipartRequest,Integer id);

    /**
     * 前端绑定/修改用户手机号
     * fys 2022.8.23 17:21
     * @param id
     * @param phone
     * @return
     */
    Integer updateUserPhone(Integer id,String phone);

    /**
     * 前端绑定/修改用户邮箱
     * fys 2022.8.23 20:10
     * @param id
     * @param mail
     * @return
     */
    Integer updateUserMail(Integer id,String mail);
}
